線上 Kotlin 練習編譯器:https://try.kotlinlang.org/
Kotlin 的函式 (function) 宣告以 fun
為關鍵字,架構接著依序為函式名稱、參數輸入區、回傳型態,跟作者慣用的 C# 有很大不同,以參數區來說 Kotlin 是先指定變數名稱再接上型態,若需回傳值則要在參數輸入區結尾加上回傳型態。函式也支援預設值指定,當呼叫時沒有輸入變數值時,會以函式上指定的值取代。
下圖範例使用三個獨立的函式展示,第一個函式 doSomething()
示範無傳入/傳出的使用方式;第二個 calculateVolume()
示範計算總體積,其中有一個選擇性參數為 num
,可以輸入複數數量做加乘;第三個 defaultString()
示範字串輸入參數也可指定預設值,左下角為執行結果。
Kotlin 的判斷式 (conditional) if...else if...else
與其他語言的寫法都相同,如下列左側簡單展示,這邊就不多介紹,特別要講的是 when
類似於 C# 跟 JS 中 switch
的用法,最主要省去了 case
關鍵字及使用 ->
取代 :
符號,並用 else
代替 default
,共用程式段的使用方式並非使用堆疊而是改以逗號處理。
在使用 if
或 when
時,建議使用大括號區分每個條件,雖然在只有一行的情況,如:"A" -> println(“is A”)
下程式仍可正常執行,部分觀點認為單行在有前提的條件下(簡短的邏輯規則)閱讀起來比較直覺,另一部分認為在可維護性上抉擇後,還是用 {}
做一點劃分較佳(確保下一個來改程式的人不會出錯),以作者的習慣都會將它分開,有興趣可延伸閱讀內有關於此問題的討論。
以官方範例來看,單行判斷式適合用於宣告變數時,需依照條件指定不同的值:
Kotlin 的集合 (Colleation) 分兩種方式,一種是唯讀另一個則是可變動的,唯讀集合也是初始後就不能再新增、修改、刪除,在下圖展示中,也列了幾種常用到的方法或存取屬性,相關說明列於後方的備註部分。
以下範例是可變動清單進行新增、修改、刪除的示範,在 List
的示範中是用 <string>
型態解說,其實所有變數型態都能夠宣告於其中,甚至是混和不同型態的變數於同一個清單當中,這點就讓各位試試看。
接著介紹的是 map
,概念是 key : value
的對照表,下圖同時展示了幾種存取 [], getOrDefault(), .keys, .values
與判斷方法 containsKey, containsValue
。
若需可變動則使用 hashMap
,下圖中 put
用於新增,[key] = ""
用於更新值,remove
為移除,clear
為清除整個集合:
以上的集合示範僅列出部分常用的方法,各位讀者可以在 IDE 上逐個使用看看呈現的結果,了解該集合支援哪些功能,在日後進行開發時,會很常利用到集合這個物件,今日的課程就到這邊,我們明天見!
資料參考
Control Flow: if, when, for, while - Kotlin Programming Language
https://kotlinlang.org/docs/reference/control-flow.htmlSingle statement if block-braces or no?
https://softwareengineering.stackexchange.com/questions/16528/single-statement-if-block-braces-or-no